home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / Clean Help / Clean Help.rsrc / STR#_10000.txt < prev    next >
Encoding:
Text File  |  1997-06-20  |  6.5 KB  |  419 lines

  1. √±Table of Contents
  2.  
  3. 
  4.  
  5. 
  6.  
  7. 
  8.  
  9. 
  10.  
  11. 
  12.  
  13. 
  14.  
  15. 
  16.  
  17. 
  18.  
  19. 
  20.  
  21. 
  22.  
  23.     
  24.  
  25. 
  26.  
  27.  
  28. 
  29.  
  30. 
  31.  
  32. 
  33.  
  34.  
  35. 
  36.  
  37. 
  38.  
  39. 
  40.  
  41. ‚åò
  42.  
  43. ‚áß
  44.  
  45. ‚å•
  46.  
  47. ⌃
  48.  
  49. 
  50.  
  51. 
  52.  
  53. 
  54.  
  55. 
  56.  
  57. 
  58.  
  59. 
  60.  
  61. 
  62.  
  63. 
  64.  
  65. 
  66.  
  67. 
  68.  
  69. 
  70.  
  71.  
  72.  
  73. !
  74.  
  75. "
  76.  
  77. #
  78.  
  79. $
  80.  
  81. %
  82.  
  83. &
  84.  
  85. '
  86.  
  87. (
  88.  
  89. )
  90.  
  91. *
  92.  
  93. +
  94.  
  95. ,
  96.  
  97. -
  98.  
  99. .
  100.  
  101. /
  102.  
  103. 0
  104.  
  105. 1
  106.  
  107. 2
  108.  
  109. 3
  110.  
  111. 4
  112.  
  113. 5
  114.  
  115. 6
  116.  
  117. 7
  118.  
  119. 8
  120.  
  121. 9
  122.  
  123. :
  124.  
  125. ;
  126.  
  127. <
  128.  
  129. =
  130.  
  131. >
  132.  
  133. ?
  134.  
  135. @
  136.  
  137. A
  138.  
  139. B
  140.  
  141. C
  142.  
  143. D
  144.  
  145. E
  146.  
  147. F
  148.  
  149. G
  150.  
  151. H
  152.  
  153. 
  154.  
  155. 
  156.  
  157. ¬ªThe Concurrent Clean Program Development System
  158.  
  159. 
  160.  
  161. 
  162.  
  163. ¬© 1987-1997
  164.  
  165. 
  166.  
  167. Computing Science Institute
  168.  
  169. University of Nijmegen
  170.  
  171. Nijmegen - The Netherlands
  172.  
  173. 
  174.  
  175. 
  176.  
  177. Version 1.2 - January1997
  178.  
  179. 
  180.  
  181. 
  182.  
  183. N.B. This Help file can be printed by choosing
  184.  
  185. Print... from the File menu (see also the entry Help).
  186.  
  187. 
  188.  
  189. Concurrent Clean 1.2 is a general purpose, higher order, pure and lazy
  190.  
  191. functional programming language that can be used for the development of
  192.  
  193. sequential, parallel or distributed executing real world applications. The
  194.  
  195. Concurrent Clean Programming Development System is a special
  196.  
  197. programming environment for Concurrent Clean. Concurrent Clean is
  198.  
  199. developed at the University of Nijmegen.
  200.  
  201. 
  202.  
  203. 
  204.  
  205. This Help file complements version 1.2 of Concurrent Clean and the
  206.  
  207. Concurrent Clean System. A description of the syntax and semantics of
  208.  
  209. Concurrent Clean 1.2 can be found in the following manual:
  210.  
  211. 
  212.  
  213. Concurrent Clean
  214.  
  215. - version 1.2 -
  216.  
  217. Reference Manual
  218.  
  219. Rinus Plasmeijer and Marko van Eekelen
  220.  
  221. University of Nijmegen
  222.  
  223. January 1997 (Draft Version)
  224.  
  225. 
  226.  
  227. Functional programming languages, Concurrent Clean (0.8) and its
  228.  
  229. implementation on sequential and parallel machine architectures are
  230.  
  231. explained in detail in the following textbook:
  232.  
  233. 
  234.  
  235. Functional Programming and Parallel Graph Rewriting
  236.  
  237. Rinus Plasmeijer and Marko van Eekelen
  238.  
  239. Addison-Wesley Publishing Company
  240.  
  241. 1993
  242.  
  243. ISBN 0-201-41663-8
  244.  
  245. 
  246.  
  247. For more background information we refer to the Bibliography.
  248.  
  249. 
  250.  
  251. 
  252.  
  253. √±1. Concurrent Clean version 1.2
  254.  
  255. 
  256.  
  257. The most important features of Concurrent Clean are:
  258.  
  259. 
  260.  
  261. 
  262.  
  263. ‚Ä¢ Clean is a lazy, pure, higher order functional programming language
  264.  
  265. with explicit graph rewriting semantics; one can explicitly define the
  266.  
  267. sharing of structures (cyclic structures as well) in the language;
  268.  
  269. 
  270.  
  271. ‚Ä¢ Although Clean is by default a lazy language one can smoothly turn it
  272.  
  273. into a strict language to obtain optimal time/space behaviour: functions
  274.  
  275. can be defined lazy as well as (partially) strict in their arguments; any
  276.  
  277. (recursive) data structure can be defined lazy as well as (partially) strict
  278.  
  279. in any of its arguments;
  280.  
  281. 
  282.  
  283. ‚Ä¢ Clean is a strongly typed language based on an extension of the
  284.  
  285. well-known Milner/Hindley type inferencing scheme (Milner 1978;
  286.  
  287. Hindley 1969) including the common polymorphic types, abstract types,
  288.  
  289. algebraic types, and synonym types extended with a restricted facility
  290.  
  291. for existentially quantified types;
  292.  
  293. 
  294.  
  295. ‚Ä¢ Type classes and type constructor classes are provided to make
  296.  
  297. overloaded use of functions and operators possible.
  298.  
  299. 
  300.  
  301. ‚Ä¢ Clean offers the following predefined types: integers, reals, booleans,
  302.  
  303. characters, strings, lists, tuples, records, arrays and files;
  304.  
  305. 
  306.  
  307. ‚Ä¢ Clean's key feature is a polymorphic uniqueness type inferencing
  308.  
  309. system, a special extension of the Milner/Hindley type inferencing
  310.  
  311. system allowing a refined control over the single threaded use of objects;
  312.  
  313. with this uniqueness type system one can influence the time and space
  314.  
  315. behaviour of programs; it can be used to incorporate destructive updates
  316.  
  317. of objects within a pure functional framework, it allows destructive
  318.  
  319. transformation of state information, it enables efficient interfacing to the
  320.  
  321. non-functional world (to C but also to I/O systems like X-Windows)
  322.  
  323. offering direct access to file systems and operating systems;
  324.  
  325. 
  326.  
  327. ‚Ä¢ Clean offers a sophisticated I/O library with which window based
  328.  
  329. interactive applications (and the handling of menus, dialogues, windows,
  330.  
  331. mouse, keyboard, timers and events raised by sub-applications) can be
  332.  
  333. specified compactly and elegantly on a very high level of abstraction;
  334.  
  335. 
  336.  
  337. ‚Ä¢ Specifications of window based interactive applications can be combined
  338.  
  339. such that one can create several applications (sub-applications or
  340.  
  341. light-weight processes) inside one Clean application. Automatic switching
  342.  
  343. between these sub-applications is handled in a similar way as under a
  344.  
  345. multi-finder (all low level event handling for updating windows and
  346.  
  347. switching between menus is done automatically); sub-applications can
  348.  
  349. exchange information with each other (via files, via clipboard copy-paste
  350.  
  351. like actions using shared state components, via asynchronous message
  352.  
  353. passing) but also with other independently programmed (Clean or other)
  354.  
  355. applications running on the same or even on a different host system;
  356.  
  357. 
  358.  
  359. ‚Ä¢ Sub-applications can be created on other machines which means that one
  360.  
  361. can define distributed window based interactive Clean applications
  362.  
  363. communicating e.g. via (a)synchronous message passing and remote
  364.  
  365. procedure calls across a local area network;
  366.  
  367. 
  368.  
  369. ‚Ä¢ Dynamic process creation is possible; processes can run interleaved or
  370.  
  371. in parallel; arbitrary process topologies (for instance cyclic structures)
  372.  
  373. can be defined; the interprocess communication is synchronous and is
  374.  
  375. handled automatically simply when one function demands the evaluation of
  376.  
  377. its arguments being calculated by another process possibly executing on
  378.  
  379. another processor;
  380.  
  381. 
  382.  
  383. ‚Ä¢ Clean is a modular language allowing separate compilation of modules;
  384.  
  385. one defines implementation modules and definition modules; there is a
  386.  
  387. facility to implicitly and explicitly import definitions from other modules;
  388.  
  389. Clean includes a huge collection of predefined modules (standard libraries)
  390.  
  391. for process creation, I/O and basic operations on objects of predefined
  392.  
  393. types;
  394.  
  395. 
  396.  
  397. ‚Ä¢ Due to the strong typing of Clean and the obligation to initialize all
  398.  
  399. objects being created run-time errors can only occur in a very limited
  400.  
  401. number of cases: when partial functions are called with arguments out of
  402.  
  403. their domain (e.g. dividing by zero), when arrays are accessed with
  404.  
  405. indices out-of-range and when not enough memory is assigned to a Clean
  406.  
  407. application;
  408.  
  409. 
  410.  
  411. ‚Ä¢ Clean 1.2 is supported on several platforms (see "Concurrent Clean:
  412.  
  413. Language Report" for an overview).
  414.  
  415. 
  416.  
  417. 
  418.  
  419.